package com.greyu.ysj.service;


import java.text.ParseException;
import java.util.List;

import com.greyu.ysj.entity.CbtChangeDraw;
import com.greyu.ysj.entity.CbtCoininfo;
import com.greyu.ysj.entity.CbtInvest;

import com.greyu.ysj.model.ResultModel;
import com.greyu.ysj.utils.InvestFlag;
import com.greyu.ysj.utils.NodeItem;

public interface CbtInvestService {
	List<CbtInvest> getInvestListByuserId(Integer page, Integer rows, Integer userId);
	//save
	ResultModel save(CbtInvest invest);
	//
	int totalPages(Integer userId,Integer rows);
	//获取用户投资列表
	List<CbtInvest> getInvestRecordByuserId(Integer page, Integer rows, Integer userId);
	
	CbtInvest getInvestById(int id);
	//获取所有的投资列表
	List<CbtInvest> getAllInvestList();
	//获取所有昨日投资列表
	List<CbtInvest> getAllYesterdayInvestList();
	//获取有效投资人数
    int investTotal(List<NodeItem> userIdList);
    //获取用户有效的存单数量 包含已到期未提取的
    int countInvestsByuserId(int userId);
    //用户总的存单数量
    int countTotalInvestByuserId(int userId);
    //被邀请用户的投资详情
    List<CbtInvest> selectInvestsByuserId(Integer page, Integer rows, Integer userId);
	// 获取用户有效的存单数量 不包含已到期未提取的
    int countRealInvestsByuserId(int userId);
    
    int realTotalPages(Integer userId,Integer rows);
    //update
    ResultModel update(Integer id,CbtInvest invest);
    //
    List<CbtInvest> getYesterdayInvestByuserId(Integer userId);
    
    double selectTotalInvestByuserId(Integer userId);
    
    double selectTotalUnExtractInvestByuserId(Integer userId);
    
    List<CbtInvest> getAllValidInvestListByUserId(Integer id);
    
    int updateBatch(List<InvestFlag> listArray);
    
    ResultModel updateFlag(Integer id,Integer flag);
    
    double selectAllInvestByuserId(Integer userId);
    double selectYesterdayRewardByuserId(Integer userId);
    
    List<CbtInvest> getAllList();
    
    double selectAllNoInvestByuserId(Integer userId);
    double selectAllPriceByuserId(Integer userId);
    
    List<CbtInvest> getChangeInv(Integer userId,Integer extractFlag);
    List<CbtInvest> selectAllInvestListByuserId(Integer userId);
    
    List<CbtInvest> investMoneyList(Integer page, Integer rows,  Integer userId,Integer coinId,String startTime,String endTime) throws ParseException;
	
	int ListTotal( Integer userId,Integer coinId,String startTime,String endTime,Integer rows) throws ParseException;
	
	double allInvest(Integer coinId,String startTime,String endTime) throws ParseException;
}
